#!/usr/bin/env bash

# 阿拉伯数字18作为异常退出码
check='[ $? -eq 0 ] || exit 18'

version=`mongod --version`
if [[ $? -ne 0 ]];
then
  eval "$check" && echo '安装mongo'
  # 如果是ubuntu:18及之下的版本可以直接使用以下命令安装
  # eval "$check" && apt install -y mongodb
  eval "$check" && echo '导入mongo公钥'
  eval "$check" && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
  # eval "$check" && release="$(lsb_release -sc)"
  eval "$check" && echo '因为我的发行版是21，mongo 暂不提供官方的预编译包，所以这里先写成发行版18的代号'
  eval "$check" && release="bionic"
  eval "$check" && echo '添加4.0的源'
  eval "$check" && echo "deb http://repo.mongodb.org/apt/ubuntu $release/mongodb-org/4.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list
  eval "$check" && echo '更新APT索引'
  eval "$check" && apt update
  eval "$check" && echo '安装mongo'
  eval "$check" && apt install -y mongodb-org
else
  echo 'mongo:$(version)'
  echo '本项目代码基于mongo:4.0，其他版本可能导致某些功能无法正常使用'
  echo '如不能使用，可手动安装mongo:4.0，或者卸载mongo后重新安装。'
fi

eval "$check" && echo '启动mongo'
if [ ! -d "/data/db/" ];then
  eval "$check" && mkdir -p /data/db/
fi
if [[ -z $(ps -ef|grep mongod|grep -v grep) ]];
then
  eval "$check" && mongod &
fi

eval "$check" && echo "mongo安装完成！！！"
